/*
 * 演示设置模型 - 演示设置数据模型定义
 * 
 * 主要功能：
 * - 定义演示设置的数据结构
 * - 提供站点级别的配置模型
 * - 演示ASP.NET Core Options模式的使用
 * - 支持多种配置源的管理
 */

namespace Lombiq.TrainingDemo.Models;

/// <summary>
/// 演示设置模型 - 定义演示设置的数据结构
/// 
/// 主要用途：
/// - 定义演示设置的数据结构
 //* - 提供站点级别的配置模型
 //* - 演示ASP.NET Core Options模式的使用
 //* - 支持多种配置源的管理
 //* 
 //* 使用场景：
/// - 存储站点级别的配置信息
/// - 作为ASP.NET Core Options的配置对象
/// - 支持多种配置源（appsettings.json、环境变量等）
/// - 提供统一的配置管理
/// 
/// 设计原因：
/// - 为站点配置提供统一的数据结构
/// - 利用ASP.NET Core Options模式的灵活性
/// - 支持多种配置源的管理
/// - 提供可扩展的配置模型
/// 
/// 设计模式：
/// - 设置模式：定义配置数据结构
/// - 选项模式：使用ASP.NET Core Options模式
/// - 配置模式：支持多种配置源
/// - POCO模式：使用简单对象进行序列化
/// </summary>
// 如果您想创建需要存储的自定义站点设置，您需要使用一个简单的POCO类，
// 它将被序列化到ISite对象中。但是，这里我们实际上超越了这一点：
// 我们利用ASP.NET Core Options模式也将其注册为一个选项。这将允许我们不仅
// 在站点设置中存储这些设置，还可以从各种其他方式提供它们，比如从appsettings.json文件
// 或环境变量。对于所有这些，请参阅：https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/
// 如果您不熟悉Options，请查看官方文档：
// https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/options
// Orchard实际上建立在此基础上，请参阅：https://docs.orchardcore.net/en/latest/docs/reference/core/Configuration/
public class DemoSettings
{
    /// <summary>
    /// 消息 - 演示消息内容
    /// 
    /// 功能说明：
    /// - 存储要显示的演示消息
    /// - 支持多语言内容
    /// - 用于站点配置管理
    /// - 提供用户友好的消息显示
    /// 
    /// 配置支持：
    /// - 可从appsettings.json读取
    /// - 可从环境变量读取
    /// - 可从站点设置读取
    /// - 支持多种配置源
    /// </summary>
    // 我们将存储一个简单的消息用于演示目的。
    public string Message { get; set; }
}

// 下一站：Drivers/DemoSettingsDisplayDriver.cs
